//
//  MFAConfigOptions.h
//  NewMissFresh
//
//  Created by 董宝君 on 2019/6/10.
//  Copyright © 2019 com.missfresh. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

/*
 每次调用上报数据方法是都会检查下述条件，以判断是否想服务器上传数据:
    1.是否WIFI/3G/4G 网络
    2.是否满足以下数据发送的条件之一:
        1).与上次发送的时间间隔是否大于 flushInterval
        2).本地缓存数据是否到达 flushBulkSize
 如果满足这两个条件之一，则向服务器发送一次数据；如果都不满足，则把数据加入到队列中，等待下次检查时把整个队列的内容一并发送。
 需要注意的是，为了避免占用过多存储，队列最多只缓存10000条数据。
*/

/**
 数据上报SDK的初始化配置
 */
@interface MFAConfigOptions : NSObject


/**
 指定初始化方法

 @param serverURL 埋点数据上报的服务器地址
 @return 上报的实例
 */
- (instancetype)initWithServerURL:(NSString *)serverURL NS_DESIGNATED_INITIALIZER;

- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)new NS_UNAVAILABLE;


/**
 上报服务器的服务器地址
 */
@property (nonatomic, copy, readonly) NSString *serverURL;

/**
 两次数据上报的最小时间间隔，单位毫秒 默认值为 15*1000 毫秒
 */
@property (nonatomic, assign) NSInteger flushInterval;

/**
 触发立即上报的本地缓存的事件条数 默认为100
 */
@property (nonatomic, assign) NSInteger flushBulkSize;

/**
 单次上报的最大条数 默认50
 */
@property (nonatomic, assign) NSInteger transLimit;

/**
 设置本地缓存的最多事件条数，默认为10000条事件 （目前这块的策略和安卓不一样，安卓是限制的size大小32M）
 */
@property (nonatomic, assign) NSInteger maxCacheSize;

/**
 是否禁止sdk，默认NO，打开后，sdk不再工作
 */
@property (nonatomic, assign) BOOL disableSDK;


/**
 是否进行数据加密，默认NO，不加密
 */
@property (nonatomic, assign) BOOL encrypted;

@end

NS_ASSUME_NONNULL_END
